System and apparatus for materials transport and storage

ABSTRACT

A system for moving a pallet is provided. The system provides for a pair of pallets each having means for inducing movement in relation to an other pallet. Further, logic is provided for calculating a movement instruction to move the pallets relative to each other. Additionally, the present invention provides for means for communicating the movement instruction to the movement means on the pallets to prompt movement of one of said pair of pallets relative to the other pallet. As no special floor surface or configuration is necessary, the present invention described herein may be readily adaptable for utilization within existing storage and inventory facilities.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. application Ser. No.10/269,099 filed Oct. 10, 2002 titled “SYSTEM AND APPARATUS FORMATERIALS TRANSPORT AND STORAGE” and further claims the benefit of U.S.Provisional Application No. 60/328,230 filed on Oct. 10, 2001 titledAPPARATUS AND METHOD FOR MATERIALS TRANSPORT AND STORAGE OPTIMIZATIONboth of which are incorporated herein in their entirety by referencehereto.

FIELD OF THE INVENTION

The present invention relates to a system for the automated storing,retrieving, and transporting of goods of any shape, size, andconfiguration utilized in warehouses, ships, airplanes, trains, trucksor other apparatus for storing or transporting goods.

Generally, it finds application as a system and apparatus related tostorage systems and more particularly is directed towards ahigh-density, modular storage and retrieval system employing a pluralityof movable storage units. The present invention also provides forerecting aisle-less warehouses, aisle-less parking buildings, aisle-lessparking lots and aisle-less storage areas maximizing utilization ofavailable storage space, minimizing human touches and increasing productthroughput.

Although, the invention finds particular application, but not exclusive,to automated storage, retrieval, and transportation of goods stacked onpallets in a matrix or grid format, it is appreciated that othercontainers and configurations may be utilized without departing from thespirit and scope of the invention.

BACKGROUND OF THE INVENTION

Traditionally, the storage and transportation of various materials in aninventory warehouse utilized the conventional wooden pallet. Theseconventional wooden pallets are usually transported by the use of eithera hand truck or a conventional forklift. In either case, an operatormoves the fork beneath the pallet, lifts the pallet and then physicallymoves the pallet to the desired location.

Conventional wooden pallets have many disadvantages. For instance,wooden pallets are subject to breakage, exposing sharp wooden edges,corners and nails, which can cause damage to both materials and topersons.

Additionally, the conventional pallets themselves are relatively heavyand cumbersome to maneuver even when utilizing the hand truck orforklift. Because of their weight and bulk, pallets are difficult for anindividual person to carry from point to point. Pallets must frequentlybe moved from flatbed trucks onto loading docks, and vice versa.Therefore, when utilizing the conventional pallet, a hand truck orforklift must be present at every location.

In an effort to address some of the disadvantages previously described,pallets have been designed to incorporate an air bearing, film orcushion between the bottom of the pallet and the floor supporting thepallet. This design feature greatly eliminates friction between thepallet and the underlying floor enabling the pallet, along with itsload, to be moved along the floor or other ground surface with relativeease.

In known warehouses, pallets and their loads are arranged side by sideon one or more levels. The displacement of loaded pallets requiresbulky, slow-acting and expensive transporting and lifting equipment thatrequires relatively board access passageways to access the pallets.These access passageways involve a considerably loss of useful space inthe warehouse. Furthermore, labor and maintenance are added costs thatcan be high utilizing traditional storage techniques.

The current invention provides a system and apparatus that is modular indesign and able to automatically store, handle, retrieve and deliverbulk materials inventory. The invention provides for aisle-lesswarehouses with the ability to automatically deliver palletized or otherpackaged goods and containers from the cargo bed of trucks, trains,planes, ships and the like directly onto the smooth floor of awarehouse. Additionally the invention can be used to move objects to anydesignated point in or out of the facility without manual humanintervention.

SUMMARY OF THE INVENTION

According to one embodiment of the present invention, a system formoving a pallet is provided. The system includes a pair of pallets eachhaving means for inducing movement in relation to the other pallet.Additionally, the system utilized a control engine having logic tocalculate a movement instruction to move one of the pair of pallets.Finally, means for communicating the movement instruction to themovement means on one of the pair of pallets to prompt movement of oneof the pair of pallets is provided.

In accordance with another embodiment of the present invention, thelogic is responsive to an electronic request.

Another embodiment includes a database for storing coordinate locationaldata relative to the a pair of pallets. The database is capable ofcommunicating with the control engine to retrieve the data.

In accordance with yet another embodiment of the invention, the systemmay utilize a low friction movement means to reduce force required tomove the pair of pallets. Such low friction movement means may be an aircushion or the like.

Still further, another embodiment of the present invention provides fora moveable pallet including a pallet and an arm assembly connected tothe pallet that is capable of engaging an other pallet for inducingrelative movement between the pallet and the other pallet. The armassembly in one embodiment may be a scissor-type arm assembly. Further,the arm assembly in another embodiment may be a telescopic-type armassembly.

Additionally, in another embodiment of the invention, the pellet mayinclude a transmitter for sending locational data or a receiver forreceiving a movement instruction from a control engine.

Additionally, another embodiment provides for a pallet including asurface for supporting a load, at least one arm assembly means disposedbeneath the surface and means for actuating the arm assembly to inducerelative movement between the pallet and an other pallet. The actuatingmeans may be an electric motor.

Still another embodiment of the present invention provides for at leastone latching mechanism disposed on the pallet.

Yet another embodiment of the present invention provides for a systemfor moving a pallet including a controller capable of identifyingavailable and unavailable locations in a grid and of creating acorresponding grid table. Additionally, the controller is capable ofidentifying pallet occupied and unoccupied locations in the grid andcreating a corresponding pallet table. An alternative embodiment furtherincludes logic for comparing the grid table to the pallet table anddetermining a movement instruction corresponding to an electronicrequest. Further, an alternative embodiment provides means forcommunicating the instruction to the pallet to induce movement of thepallet relative to an other pallet.

Yet another embodiment of the present invention provides for a methodfor moving a pallet by identifying available and unavailable locationsin a grid, creating a grid table representative of grid coordinate datarelative to the available and unavailable locations in the grid,identifying pallet occupied and unoccupied locations in the grid,creating a pallet table representative of pallet coordinate datarelative to the occupied and unoccupied locations in the grid, comparingthe grid table to the pallet table, determining a movement instruction,communicating the movement instruction to the pallet to induce movementrelative to an other pallet, actuating an arm assembly on the pallet toengage an other pallet and inducing relative movement between the palletand the other pallet.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention may take form in various components and arrangements ofcomponents. The drawings are only for the purposes of illustrating thepreferred embodiments and are not to be construed as limiting theinvention.

FIG. 1 illustrates an exemplary overall system diagram that suitablepractices an embodiment of the invention.

FIG. 2 illustrates an exemplary system flow diagram that suitablypractices an embodiment of the invention.

FIG. 3 illustrates an exemplary system flow diagram that suitablepractices an embodiment of the invention.

FIG. 4 illustrates a perspective view of a pallet that suitablepractices an embodiment of the invention.

FIG. 5 illustrates a perspective view of a pallet and extended scissorarm assembly that suitable practices an embodiment of the invention.

FIG. 6A illustrates a perspective view of a pallet and extended slidearm assembly that suitably practices an embodiment of the invention.

FIG. 6B illustrates a perspective view of a pallet and extendedtelescopic arm assembly that suitable practices an embodiment of theinvention.

FIG. 7 illustrates a cross-sectional view of a pallet that suitablypractices an embodiment of the invention.

FIG. 8 illustrates an exemplary configuration diagram that suitablepractices an embodiment of the invention.

FIG. 9 illustrates a grid layout in accordance with an embodiment of theinvention.

FIG. 10 illustrates a pallet layout in accordance with an embodiment ofthe invention.

FIG. 11 illustrates a side view of two adjacent pallets coupled togetherin accordance with an embodiment of the invention.

FIG. 12 illustrates a side view of two pallets coupled together using anextended arm assembly.

FIG. 13 illustrates a side view of a conveyor application that suitablypractices an embodiment of the invention.

FIG. 14 illustrates a side view of a conveyor application that suitablypractices an embodiment of the invention.

FIG. 15 illustrates a side view of a multiple level application thatsuitably practices an embodiment of the invention.

FIG. 16 illustrates a side view of a multiple level application thatsuitably practices an embodiment of the invention.

DETAILED DESCRIPTION OF THE ILLUSTRATED EMBODIMENTS

The following includes definitions of exemplary terms used throughoutthe disclosure. Both singular and plural forms of all terms fall withineach meaning.

“Software”, as used herein, includes but is not limited to one or morecomputer executable instructions, routines, algorithms, modules orprograms including separate applications or ones from dynamically linkedlibraries for performing functions as described herein. Software mayalso be implemented in various forms such as a servlet, an applet, astand-alone program including a server based application and a userbased application, a plug-in or other type of application. Software mayalso be stored on various readable mediums such as disk, CD, tape,memory and can be downloadable.

“Database”, as used herein, includes but is not limited to any means ormethods used to organize, store and retrieve data such as relationaldatabase management systems (RDBMS), flat file structures, arrays,Random Access Memory (RAM), or the like.

“Logic”, as used herein, includes but is not limited to hardware,software and/or combinations of both to perform one or more functions.

“Request”, as used herein, refers to any identified or scheduled need tomove a pallet, whether that need is the result of a manual operatoraction or the result of intelligent communications or coordination withdisparate processing systems such as warehouse management system (WMS),inventory management systems, order processing systems, or the like.

“Network”, as used herein, includes but is not limited to the internet,intranets, Wide Area Networks (WANs), Local Area Networks (LANs), andtransducer links such as those using Modulator-Demodulators (modems).

“Internet”, as used herein, includes a wide area communications network,typically accessible by any user having appropriate software.

“Intranet”, as used herein, includes a data communications networksimilar to an internet but, typically having access restricted to aspecific group of individuals, organizations, or computers.

FIG. 1 is an exemplary system diagram of the system 100 architecture inaccordance with the present invention. As shown, the system 100 isconfigured with both hardware and software 110. In one embodiment, thesystem 100 is contained within an intranet network such as a TCP/IPlocal area network.

The preferred embodiment of the present invention operates under thecontrol of a collection of computer hardware and software applications110 that monitor, direct and coordinate the movements of automatedself-propelled computer controlled pallets 120 arranged in a matrix orgrid 130. The pallets 120 when arranged in a plurality or grid 130 onany smooth flat surface in a checkerboard-type fashion create a dynamicfloor of shifting squares, each capable of being delivered to any otherlocation in the configuration.

A variety of graphical user nodes, interfaces (GUI's) or operatordesktops 140 in connection with a system manager server 150 provideoperators, support and maintenance personnel with the tools needed toinitiate, monitor and intervene with the system 100 in a real-time mode.Additionally, comprehensive inventory management software (not shown)interfaces with a system control server 160 to provide a high level ofinventory tracking and delivery automation. The system control server160 communicates with the individual pallets 120 in the grid 130 byproviding instructions to effectuate the repositioning of the pallets120 in accordance with a request. Additionally, a database server 170and database 180 are provided to store the data pertinent to trackingand moving individual pallets 120 within the grid 130. The databaseserver 170 preferably utilized a RDBMS 180 and is one ordinarily knownin the art, for example, Oracle, Microsoft SQL Server, Informix or thelike.

Each of the system components will be more readily understood through areview of the drawings as described below.

Continued reference to FIG. 1 and briefly describing the operation ofthe system 100, a request for a specific load is entered by an operatorvia an operator node 140, or move commonly is scheduled automatically asa result of tight integration with disparate processing systems asmentioned in the definitions above under “request”. The system controlserver 160 processes the request and communicates with the databaseserver 170 to identify the appropriate pallet 120 and further the X-Ycoordinate location of the requested pallet 120 within the grid 130. Thesystem control server 160 then calculates the movement instructionsnecessary to fulfill the request. The system control server 160 thencommunicates the movement instructions necessary to fulfill the requestto the pallets 120 within the grid 130. Each of the pallets 120 in thegrid 130 are capable of receiving the movement instructions from thesystem control server 160 and of self-repositioning in accordance withthe instructions. Finally, the system control server 160 receivesupdated location and product information from each pallet 120 andcommunicates with the database server 170 which updates the appropriatedata in the database 180 necessary to respond to further requests.

It is contemplated that FIG. 1 represents a single embodiment of anetwork hardware configuration, and that each component reflects virtualcomponents that may constitute clusters of servers in someconfigurations. One ordinarily skilled in the art can appreciate theavailable alternative designs available to perform any of the functionsof the system 100. Furthermore, it is contemplated that the system 100may be configured using servers that run a variety of operating systemsincluding but, not limited to, Microsoft Windows™. Unix, Linus and thelike.

The pallets 120 are configured in a grid 130 pattern as shown in FIG. 1and are employed in a network in the same manner as computers areconnected to the Internet. As stated earlier, this network of automatedpallets 120 receives commands from the system control server 160. Thesesignals are routed through the grid 130 of automated pallets 120 untilthey reach the target pallet 120. The target pallet 120 receiving theinstruction then executes the command and returns an appropriateresponse signal (i.e. “Acknowledged”, “Move Complete”, “ErrorsEncountered”, etc.) to the system controller server 160 which updatesthe database 180.

As illustrated in FIG. 2, a common database 180 is a central componentshared by the three sub-systems; a system control server 160, a systemmanager server 150 and the inventory manager 210. Information placed orupdated in the database 180 by one sub-system triggers events and drivesactivity in another.

In operation, orders for goods/materials are entered into the inventorymanager 210 through a variety of methods, including, but not limited to,manual entry 220, electronic data interchange (EDI) 230, or othere-commerce channels such as customer entry via the internet 240.Requests entered into the database 180 are processed by the systemcontrol server 160, which identifies the location of a target pallet 120containing the ordered goods.

Based on the current location of the target pallet 120 and state of thegrid 130, the system control server 160 calculates movement instructionspursuant to the coordinates and subsequently communicates with thepallets 120 in the grid 130 to deliver the designated pallet 120 to thedesired location. The actions of the system control server 160effectively moving pallets 120 around the grid 130 are monitored by thesystem manager server 150, which continually updates the operator node140 to reflect the current and ever shifting state of the grid 130.

In another example, as goods (automated pallets 120) are received intothe grid 130 for the first time, the system control server 160recognizes the entry of the new pallets 120 into the grid 130 andcaptures and downloads the inventory data stored on the automatedpallet's internal processor 740 (as shown in FIG. 7). The informationcaptured by the internal processor 740 (as shown in FIG. 7) iscommunicated to the system control server 160 via the local area network(LAN) or alternatively via radio frequency (RF) wireless communication.The system control server 160 updates the inventory tables in thedatabase 180, to make the goods available in the inventory manager 210during order processing and fulfillment of future requests. Likewise, onthe back-end, as an automated pallet 120 is loaded for delivery orotherwise emptied or removed, the system control server 160 updates theinventory management system accordingly in order to alert the inventorymanager 210 of the change in inventory status.

Although the preferred embodiment utilizes hard wired wireless RFtechnology to enable communications between the system control server160 and the pallets 120, one ordinarily skilled in the art canappreciate that other techniques may be used including, but not limitedto, wireless RF connections, infrared, Bluetooth™ and the like.

In addition to the automated updating features as described above, atany time, the data in the database 180 can be manually adjusted bytrained operators using the operator node 140 to intervene, overrideautomated processes, adjust schedules, enter ad hoc requests, correcterrors, troubleshoot problems, or suspend or shut-down the system 100either partially or entirely.

Because of the asynchronous nature of the three control systemcomponents, the system control server 160, the system manager 150 andthe inventory manager 210, each can be managed and maintained separatelyfrom the others. Independent operation of these three components 160,150, 210 enables containment of failure. Controlled delays or shutdownsof one component thereby do not affect or interfere with the operationsof the other components.

As indicated herein, the system control server 160 is a collection ofprocesses and logic that monitor, direct and coordinate the movement ofautomated pallets 120 throughout the grid 130. Specifically, and asshown in FIG. 3, the system control server 160 is divided into twosub-components: a control engine 310 and control director 320.

FIG. 3 illustrates the interactions between the control engine 310 andthe control director 320.

Specifically, the control director 320 monitors and/or integrates withorder processing systems 360 and inventory management systems 350 andsubsequently manages the fulfillment process responsive to a request.Additionally, the control director 320 manages, priorities andcoordinates the flow of automated pallets 120 throughout the grid 130while maintaining a work queue 370 which prompts the control engine 310to calculate move sequences and sends movement commands to the pallets120 in the configuration. Finally, the control director 320 updatesinventory tables 350 stored in the database 180 as requests areprocessed and new automated pallets 120 arrive or are introduced intothe grid 130.

Upon receiving request information via the work queue 370, the controlengine 310 calculates a path for each automated pallet 120 in the grid130 and sends movement instructions to the individual pallets 120responsive to a request. Additionally, the control engine 120 isresponsible for updating the environment 330 and current state 340tables in the database 180 to reflect the current location of eachpallet 120 in the grid 130 by polling the pallets 120 at startup, manualreset and continually during ongoing operation.

Furthermore, the control engine 310 detects the introduction of newpallets 120 into the grid 130, establishes communications, and downloadsthe inventory data 350 stored on the pallet internal processor 740 (asshown in FIG. 7), making the information available to the controldirector 320.

Just as the three main components of the controlling software areasynchronous, so too are these sub-components of the system controlserver 160. Problems, maintenance or idle time in one sub-system doesnot necessarily affect the operation of the other.

In operation, the control engine 310 calculates, at every point in time,the most efficient process to relocate a pallet 120 to a specifiedtarget location and accordingly issues a sequence of instructions to thepallets 120 to prompt the reposition pursuant to a request. Thisasynchronous process constantly checks the work queue 370, which isautomatically filled by the control director 320 and/or manually updatedby an operator using an operator node 140. The control engine 310 thenfactors these new parameters into the ever-shifting state of the grid130 in response to future requests. As a result, the pallets 120 in thegrid 130 will travel to the target location in accordance with theinstructions issued by the control engine 310.

The automated pallets 120 are capable of bearing heavy loads andproviding the motive means for pushing themselves one pallet-length ineither of two directions, preferably, north and west (as a relativereference), and pulling themselves one pallet-length in either of twodirections, preferably, east and south. Similarly, using this samemotive means, a pallet 120 is capable of pushing or pulling an adjacentpallet 120 in these same four directions. The operative of the motivemeans will be described in detail below. A pallet 120 as describedaccording to the preferred embodiment of the current invention iscapable of pushing or pulling itself one space in two directions, and iscapable of being pushed or being pulled by another pallet in theremaining two directions. Although the preferred embodiment moves thepallets one pallet length in any direction, it is contemplated that thesystem described can be modified to move a pallet any desired distance.

Illustrated in FIG. 4 is a perspective view of a pallet 120 inaccordance with a preferred embodiments of the present invention. Asshown, the pallet 120 is preferably rectangular in shape having a topsurface 410, a bottom surface 420, and four sidewalls 430. The pallet120 is preferably constructed of plastic. Although the pallet 120 in thepreferred embodiment is constructed of steel, an artisan can appreciatethat the pallet 120 may be constructed of other rigid material includingbut, not limited to aluminum, metal alloy, steel fiberglass, wood andthe like.

The top surface 410 is capable of supporting a load and is equipped withload supporting fasteners 440 to be optionally used to secure a loadonto the top surface 410. Preferably, the fasteners 440 are eye-hooks asshown, however, it is contemplated that alternate methods may beutilized to secure the load to the pallet 120 including but, not limitedto straps, hands, notches, channels and the like.

The bottom surface 420 is equipped with an air cushion system 710 tofacilitate low friction or frictionless movement of the pallet along asmooth surface. Alternatively, the air cushion system 710 can bereplaced with wheels, rollers, casters, skids and the like.

The pallet 120 is equipped with utility junctions 450 on each sidewall.Specifically, the pallet 120 is equipped with male receptacles 470 onthe north and west sidewalls and female receptacles 460 on the south andeast sidewalls. This arrangement of male and female receptacles 460enables two adjacent pallets 120 to be in electrical and pneumaticcommunication with one another. For example, when side by side, the malereceptacle 470 on the west sidewall of one pallet 120 is entered intothe female receptacle 460 on the east sidewall of the other pallet 120causing the pallets 120 to establish optional electrical, communicationsand pneumatic connections with each other.

FIG. 5 illustrates a scissor arm assembly 510 comprising the utilityjunction 450 with female receptacle 460 extending from the east sidewallof a pallet 120. A variety of alternate embodiments of the arm assembly510 are provided. As illustrated in FIGS. 5, 6A and 6B, a scissor-typearm assembly 510, a slide-type arm assembly 610 and a telescoping-typearm assembly 620, respectively, are contemplated. Additionally, a“hinged” arm mechanism (not shown) folded into the pallet that may swingout from a side of the pallet, allowing the pallet to be pushed orpulled. The preferred embodiment utilizes electric motors (not shown) toextend and retract the arm assemblies 510, 610, 620. Although thepreferred embodiment of the present invention utilizes electric motors(not shown) to drive the actuator (not shown) controlling the extensionand retraction of the arm assembly 510, 610, 620, alternate means ofpropulsion may be utilized including, but not limited to pneumaticcylinders, gears, pulleys, belts, lead screw propulsion methods,hydraulics, electro-magnetic, electro-mechanical, springs and the like.

In the preferred embodiment, the north and west faces of each palletcontain locking pins 730 (as shown in FIG. 7) by which the armassemblies 510, 610, 620 couple and lock into the locking pin ports 520positioned on the arm assemblies 510, 610, 620 that constitute the southand east sidewall of the pallet. Thus, when a plurality of pallets 120are arranged and oriented accordingly, they create a patchwork ofinterconnecting pallets 120. In addition, when locking pins 730 (asshown in FIG. 7) are engaged the arm assemblies 510, through the utilityjunctions 450 provide the coupling means to pass optional electricity,compressed air and computer communications from one pallet 120 toanother via receptacles 460. The preferred embodiment utilizes on-boardelectric motors (not shown) to drive the extension and retraction of thearm assemblies 510, 610, 620.

In alternative embodiments of the invention, the pallets 120 may utilizeindividual facilities such as on-board hydraulic systems, air blowers,batteries, wireless network communications and other mechanisms capableof providing services needed for the operation of the pallets 120.

Alternatively, a common bus system to pass power, computercommunications and/or compressed air throughout the grid may beprovided. In this embodiment, perimeter docking ports (PDP) (not shown)are positioned at multiple locations around the perimeter of theavailable pallet locations (see FIG. 9, discussed later). Twoembodiments of the PDP are employed, consistant with and identical tothe utility junctions 450 discussed previously. Relative to the constantorientation of all pallets 120 in a configuration, and corresponding tothe utility junctions 450 on the pallets 120, PDP's positioned on thenorth and west perimeter are of the type comprising the femalereceptacles 460, and PDP's positioned on the south and east perimetersare of the type comprising male receptacles 470.

In embodiments of the entire system where PDP's are utilized, the PDP'sare mounted on interior walls or mounted to fixed structuresconstituting barriers fastened to the floor. In each case, the PDP's aremounted at the level that facilitates the mating with utility junctions450 on pallets 120, and each PDP is connected to the network (shown inFIG. 1) via the optional means defined previously and discussed later.

In another embodiment of the entire system that employs wirelessnetworking technology in each pallet 120, PDP's are not used.

FIG. 7 illustrates a cross-section of the automated pallet 120 and itssub-assemblies.

As illustrated in FIG. 7, the preferred embodiment of the currentinvention employs the application of an air cushion system 710 toprovide a thin film of air on which the load-bearing pallet 120 floats.This air cushion system 710 allows a pallet 120 carrying tons ofmaterial to easily move from one position to the next with minimal forcerequired. All types of air cushion systems currently commerciallyavailable may be applied to the current invention.

Continued reference to FIG. 7 shows that an onboard canister pump 720 isprovided to supply air to the air cushion system 710 embedded in thebottom surface 420 of the pallet 120. In yet other embodiments, onartisan can appreciate that the pallets 120 may be quipped with wheels,rollers and the like in place of air cushion system 710 without changingthe scope or operation of the invention.

In the preferred embodiment of the present invention, each automatedpallet 120 is provided with a computer processor, hardware and softwarecontrol box 740 to enable the pallet 120 to receive instructions, storedata and execute commands. Additionally, as previously described, eachindividual pallet 120 is capable of sending information to and receivinginstructions from the system control server 160 and to her pallets 120.

Preferably, the current invention employs common computer networkingtechnology, TCP/IP, to facilitate massaging between the system controlserver 160 and the pallets 120 in the grid 130. Common routing softwareis provided to enable the automated pallets 120 in a configuration tocommunicate on a network. Each pallet 120 is uniquely identified and isable to distinguish between instructions being sent to itself andinstructions intended for other pallets 120 in the grid 130. Because thesystem 100 is designed to identify the order of pallets 120 at any giventime, messages sent by the system control server 160 are automaticallyforwarded from pallet 120 to pallet 120 until they reach the intendedtarget pallet 120. As pallets 120 are constantly being moved, thiscounting information is constantly updated by the system control server160 and subsequently stored in the database 180. Although the preferredembodiment utilizes a relational database 180 to store data, oneordinarily skilled in the art can appreciate that storing, retrievingand maintaining information can be accomplished using other meansincluding, but not limited to, Random Access Memory (RAM), flat filestructures, and the like.

Although the preferred embodiment utilizes a hard-wired TCP/IPcommunications protocol to facilitate communication between the pallets120 to each other and to the system control server 160, an artisan canappreciate that other communication protocols may be utilized toaccomplish communication including but, not limited to Ethernet™, X10,Wireless RF, Wireless infrared Bluetooth™, DeviceNet ™, ModBus™, ModBusPlus™ and the like.

One skilled in the art will contemplate additional components that maybe employed to further contend the functionality and capability of thepallets 120, including, but not limited to, a global positioningsatellite (GPS) receiver and transmitter allowing a pallet's 120 exactposition on the glove to be tracked, load cells or scales toautomatically determine the weight of a pallet 120, tilt, level andacceleration sensors to monitor load stability, as well as radiofrequency identification (RFID), Bar Code readers, ID Matrix readers, orvision systems.

In operation, the diagram in FIG. 8 illustrates the basic concept oftransposition employed by one embodiment of the current invention. Inthis FIG. 8, the squares numbered 1 through 8 represent load-bearingpallets 120. The dark square represents an empty space. Given thisconfiguration, either pallet 6 or pallet 8 could be moved into the emptyspace, leaving the space previously occupied empty. For example, ifpallet 8 slides into the empty space to the right, the space itpreviously occupied will be left empty, allowing pallet 7 to slide onespace to the right or pallet 5 to slide one space down. If pallet 5slides down, then either pallet 2, 4 or 6 can slide into the spacepreviously occupied by pallet 5. In this manner, any pallet 120 in theconfiguration can be relocated to any position on the grid 130 by simplydisplacing the empty space in a coordinated fashion.

In alternate embodiments of the current invention, many more pallets 120and empty spaces are arranged contiguously in a grid 130. As previouslydiscussed, as long as at least one empty space exists, any pallet 120can be relocated to any other position through this method oftransposition.

According to an embodiment of the present invention, FIG. 9 illustratesavailable floor space in a warehouse divided into a virtual grid 130with storage spaces delineated by X,Y coordinates as shown.

As illustrated in FIG. 9, the grid configuration and X,Y coordinatesdepicted in FIG. 9 are purely virtual in nature and do not constituteany special demarcation or apparatus on the actual warehouse floor. TheX,Y coordinates do however represent the organizational structure.employed by the system 100 of an embodiment of the current invention.The specific controlling methods, logic and processes are describedbelow.

For illustration, FIG. 10 shows the same warehouse floor as depicted inFIG. 9 superimposed with pallets 120 occupying most of the availablestorage positions. Accordingly, any pallet 120 in the FIG. 10configuration can be reheated to any other available space by thetransposition means previously described in FIG. 8.

The number of unoccupied spaces in any configuration is not required toexceed one. However, an artisan can appreciate that in each installationa balance is struck between the desire to maximize available spaceutilization and the need to relocate pullets quickly. If the need tomaximize space utilization is greater than the requirement to movepallets quickly, then fewer unoccupied spaces are maintained. If thelater requirement is greater, then more spaces are left unoccupied.

In operation, and as previously discussed, the operator programs thesystem 100 with the coordinates of the layout of the floor and availablespaces. A graphical user interface (GUI) (not shown) is provided tofacilitate the construction and maintenance of the virtual floor layout.Likewise, a similar GUI is provided (not shown) to facilitate theconstruction and maintenance of the virtual representation of allpallets 120 and their locations in the configuration.

The table below represents the basic data structures utilized by thepreferred embodiment of the system control server to track and managethe ever-shifting state of the entire system. Prime 2^(nd) Table/ColumnName Type Index Index Description GRID_TABLE Table Contains one row forevery available space X Integer 1 “X” coordinate of the given space YInteger 2 “Y” coordinate of the given space ENABLED Boolean YES/NOswitch PALLET_TABLE Table Contains one row for every Automated palletPALLET_ID Integer 1 Unique identifier X Integer 1 Current “X” coordinateof the given pallet Y Integer 2 Current “Y” coordinate of the givenpallet DEST_X Integer Destination “X” coordinate of the given palletDEST_Y Integer Destination “Y” coordinate of the given palletPOWER_STATUS Integer Power supply status indicator COMM_STATUS IntegerElectronic communications status indicator AIR_STATUS Integer Air supplystatus indicator UP_ARM_STATUS Integer Upper arm assembly statusindicator RT_ARM_STATUS Integer Right arm assembly status indicatorENABLED Boolean YES/NO switch

Initially, the pallet table (shown above) is populated by optionalautomatic or manual means. As described herein, the preferred methodemploys both means. A collection of pallets 120 numbering not less than8 are placed and positioned contiguously on the designated availablefloor space with at least one pallet 120 connected to the network viaone of the many perimeter docking ports discussed earlier. Upon start-upor optional manual reset, the control engine 310 polls all perimeterdocking ports to detect the presence of the (at least one) connectedpallets 120. Because every perimeter docking port is associated with afixed physical location, a row can be inserted into the pallet table(shown above) comprising the pallet ID and values representing the X,Ycoordinates for the location. Additionally, one skilled in the art willrecognize that the control engine 310, through the perimeter dockingports and the previously identified pallet(s) 120 connected to theperimeter docking ports can identify and calculate the X,Y coordinatesfor adjacent pallet(s) 120. This process is repeated through allsubsequent adjacent pallets 120 until all pallets 120 have beenidentified and a row has been inserted into the pallet table (shownabove) for each pallet 120 in the configuration.

Upon gathering the necessary data as shown above for each pallet 120 inthe configuration, the control engine 310 communicates with the databaseserver 170 to store the data in the database 180.

The floor layout as shown in FIG. 9 is converted by the operator into aset of X-Y coordinates. These coordinates are entered into the gridtable as shown above. The grid table above is a static collection ofdata representing the layout of the floor populated during configurationof the entire system and, therefore, is updated only when the collectionof available pallet locations is altered. The data in this grid tablechanges only when the actual layout of the existing floor space changes.As in a standard grid arrangement, the grid table contains a row thatcorresponds to every square space of floor available to a pallet. Asfloor space is never perfectly symmetrical or entirely usable, oneskilled in the art will recognize that unavailable spaces are designatedby the absence of a row for the given unavailable coordinates.

The available floor space as illustrated in FIG. 9 is mapped out on anX,Y axis. In this example, coordinates 0,0 are assigned to thebottom-left-most corner for any configuration however, because thecoordinates are relative, the 0.0 coordinate can be assigned to anylocation on the floor. As is the case in the example of FIG. 9, location0,0 is not always an available space. In accordance with FIG. 9, thegrid table in the database would contain the following rows and values:X Y ENABLED 0 2 Y 0 3 Y 0 4 Y 0 5 Y 0 6 Y 0 7 Y 0 8 Y 1 2 Y 1 3 Y 1 4 Y1 5 Y 1 6 Y 1 8 Y 2 2 Y 2 3 Y 2 4 Y . . . . . . . . .

As seen in the grid table above, there is no entry in the table for thespace corresponding to the coordinates 0,0-0,1-1,1-2,1 and 2,1. Theabsence of rows with these values indicates to the control engine 310that those spaces are not available for population by a pallet 120.

Additionally, by using the operator node, the operator is able todesignate a space temporarily unavailable. The “Enabled” column is usedby system operators to designate a particular grid space as temporarilyunavailable. An entry in the grid table with ENABLED=“N” is treated thesame as a non-existent row for those coordinates.

Unlike the grid table, the pallet table (shown above) is very much adynamic table. The values in this pallet table constantly change toaffect and reflect the existence, location and movement of automatedpallets 120 throughout the grid 130. The control engine 310 constantlyselects data from the pallet table, calculates movement instructions,issues commands to the individual automated pallets 120, then updatesthe values in this table at the conclusion of successful movements. Thiscycle repeats continuously until the system is halted, shut down or thework queue becomes empty.

FIG. 10 is an illustration of pallets superimposed on the grid asidentified in FIG. 9. Accordingly, the pallet table identifies thecurrent locations of every pallet in the grid. Below is a pallet tablecorresponding to the location of the pallets as illustrated in FIG. 10.PALLET ID X Y 1 3 0 2 4 0 3 5 1 4 3 1 5 8 1 6 10 0 7 10 1 8 11 1 9 11 210  9 2 11  7 2 12  6 2 13  3 2 14  4 2 15  5 2 16  4 3 . . . . . . . ..

Every automated pallet 120 is assigned a unique pallet identifier thatis embedded into the pallet's internal processor (not shown) disposed inthe control box 740. This unique pallet ID, represented here as a list acontiguous integers starting with 1, are captured by the control engine310 at startup or reset time and used as the primary key values whenpopulating the pallet table. In practice, the values in the pallet IDfield may be “16-digit” hexadecimal values, however, integers are usedin this example for the ease of discussion.

The most fundamental of all of the processes and logic that make up thecontrol engine 310 is the pallet mover logic. This logic is called uponcontinuously to calculate pallet 120 movements in accordance withrequests in the work queue 370. The logic uses the values in the gridand pallet tables to determine which pallet 120 needs to move inresponse to a request. Therefore, one call to the pallet mover logicwill result in at least one pallet 120 being moved one space in somedirection. Additional pallets 120 are moved each time the pallet moverlogic is invoked. Each time the logic is invoked the control engine 310reassesses the current state of the configuration by referring to thecurrent pallet table and subsequently issues instructions to effectuatethe most logical move given the entire arrangement of the grid 130 atthat particular time.

For example, again referring to layouts shown in FIGS. 9 and 10, supposea request is entered to move pallet ID 115 (at X,Y coordinates 0,8) fromthe left side of the floor to location (15,8) which is on the right sideof the floor. Upon assessing the current state of the configuration, thecontrol engine 310 determines that pallet 115 must move laterally to theright by subtracting the origin X,Y coordinates (0.8) from thedestination coordinates (15,8). The positive X value from the result(15,0) indicates an east (relative) direction. A negative value for Xwould indicate the pallet needs to move west. Likewise, a positive valuein the Y coordinate result would indicate the pallet must move north,while a negative value in the Y coordinate result would indicate thepallet must move north, while a negative value indicates south. In thisexample, the Y value of zero means the pallet is currently on thecorrect lateral row relative to the target location.

Continuing with the example, the logic then determines if pallet ID 115is able to move one space east, by determining if the adjacent space tothe cast is an available space, and if so, if that available space isvacant. In reaching this determination, the pallet mover logic must firdetermine the location of pallet ID 115. In doing so, the values for Xand Y are selected from the pallet table where the pallet ID-115. Withthese coordinates, a query is made by the control engine 310 to the gridtable to determine if the location one space to the right of pallet ID115 (X+1,Y) is an available space in the grid 130. This determination isaccomplished by selecting a column or aggregate value from the gridtable where X=the value of X+1 for pallet ID 115 and Y=the value of Yfor pallet ID 115 and ENABLED=YES. If a row value is returned from thequery, the space is available. Otherwise the space is not available, andthe control engine 310 will calculate a movement in another directionbefore it will be able to move it to the right.

In this example, the space at location 1.8 (one space to the right) isan available space, therefore the logic must next check to see if thespace is occupied. It checks for occupancy of a particular space byquerying the pallet table where X=(in this case, 1) and Y=(in this case,8). In this example, no row is found that contains these values,therefore, the control engine 310 has determined that the availablespace to the east is vacant.

Now, for any configuration oriented in the way previously discussedthere are 2 ways a pallet 120 can move in an eastward direction. Becausethe motive means, that being the arm assemblies 510, 610, 620, for eachpallet 120 are oriented on the south and east sidewalls 430 of thepallet 120, a pallet 120 can be pushed to the east by an adjacent pallet120 to the west, or it can extend the arm assembly 510, 610, 620 fromthe east sidewall 430 across a vacant space and latch onto anotherpallet 120 or perimeter docking port and then retract the same armassembly 510, 610, 620 effectively pulling itself one space to the east.Therefore, the logic next looks for a pallet 120 one space to the leftto be pushed by. This is done by issuing a query to the pallet table,where X=(in this case, X-1) and Y=(in this case, 8). Now, no row isreturned which indicates to the control engine 310 that there is nopallet 120 available to push pallet number 115 to the east.

Next, the logic checks location 2,8 which is two spaces to the right fora pallet 120 which would enable pallet ID 115 to utilize its east facingarm assembly 510, 610 to pull itself to the east. Upon querying thepallet table where X=2 and Y=8, a row value is returned indicating tothe control engine 310 that pallet ID 66 is located in that position.Accordingly, the control engine 310 issues the instructions to pallet ID115 to extend its right arm assembly 510, 610, 620, attach to pallet ID66, turn on its air cushion, retract its arm assembly 510, 610, 620(causing it to pull itself one space to the east ), then turn off theair. Finally, the control engine 310 updates the pallet table settingX=1 and Y=8 where pallet ID=115 completing the cycle.

The control engine 310 continually cycles through this logic until therequested move is complete. Continuing with our example, the logicdetermines that the location one space to the right of pallet ID 115(which is now 2,8) is available but, not empty. This situation dictatesthat the control engine 310 must either move pallet ID 66 out of theway, or move pallet ID 115 in another direction. Because the requesteddestination, for pallet ID 115 is on the same Y coordinate, the controlengine 310 will make every effort to not move pallet ID 115 off thecurrent Y axis.

Accordingly, pallet ID 66 now becomes the designated pallet 120 to bemoved. The control engine 310, already knowing that pallet ID 66 ispositioned at location 2,8, checks to see if the location one spacenorth of pallet ID 66 is available. A query to the grid table where X=2and Y=9 returns a row value indicating to the control engine 310 thatthe space is available. The pallet table is then queried for a row valuewith the same coordinates to verify that a pallet 120 is not present inthe space. Because there is no pallet 120 in the space, the controlengine 310 determines that it can move pallet ID 66 north one space,provided there is a pallet 120 to push against or to be pulled towards.The same logic as identified above is used to make the determination.Instructions are issued by the control engine 310 and communicated tothe pallet 120 that cause the pallet 120 to move. Finally, the pallettable is updated accordingly.

With pallet ID 66 now moved, another loop through the logic of thecontrol engine 310 is concluded. The next invocation of the process willfollow the same path as the first, since there is an empty availablespace to the east of pallet ID 115. This cycle repeats itselfcontinuously until pallet ID 115 has been moved to its designatedlocation.

One skilled in the art will anticipate how this fundamental logic isorganized, adjusted, and reapplied to facilitate movement calculationsin all four directions (relatively, north, south, east and west).

While it has been demonstrated pallet movements are calculated andcoordinated fundamentally one at a time, in the preferred embodiment itis contemplated, and one skilled in the art will recognize, thatmultiple movements will occur simultaneously throughout a configuration.Furthermore, in the preferred embodiment, complex and compound movesequences are contemplated involving “strings” of pallets 120contiguously arranged on a common X or Y coordinate. Examples include,but are not limited to, a string of pallets 120 moving in unison, and astrong of pallets 120 moving in alternate sequences starting with thefirst pallet 120 in the string, followed by the second, then followed bythe first and third simultaneously, then the second and forthsimultaneously, then the first, third and fifth simultaneously and soon.

In accordance with the specific configuration of the floor, andparticularly corresponding to the number of vacant spaces on the floor,the amount of shifting of pallets 120 can be minimized or maximated tomeet desired performance levels to balance the need for spend with theutilization of available space. In any case, the logic used to achievethe reposition of the pallets 120 is as described above.

In operation, following a determination of the available grid spaces bythe above-described logic, moving instructions are sent to the pallets120 by the control engine 310 is effectuate the move. FIG. 11illustrates two pallets 120 carrying cargo boxes (Boxes A and B)attached via the arm assemblies 510,610 of one pallet 120 and thelocking pins 730 of the other. As shown, the pallet 120 carrying Box Ahas its arm assembly 510,610 partially extended and is mechanicallylocked to the pallet 120 carrying Box B, FIG. 12 further illustrates thepushing and pulling action. To effectuate a move, the pallet 120carrying Box A would turn on its air cushion system, extend the armassembly 510,610, and push itself one pallet-length away. The pallet 120carrying Box B stays in place because its an cushion is deactivatedcausing the pallet 120 to act as a push-stop for the pallet 120 carryingBox A.

The pallet 120 carrying Box A then turns off its air cushion and eitherdisconnects from the other pallet and retracts its arm assembly 510leaving an unoccupied space between them. Alternatively, the pallet 120carrying Box B can turn on its air cushion and the pallet 120 carryingBox A can retract its arm assembly 510,610 pulling the pallet 120carrying Box B next to it leaving an empty space to the right of thepallet 120 carrying Box B.

In addition to the grid 130 configuration discussed previously, it iscontemplated that a minimum of two such automated pallets 120 can beutilized together in an alternating in-line fashion to push and pulleach other causing each to be propelled down a straight line creating avirtual conveyor. It is contemplated that this in-line fashion can beused to automate the loading and unloading of cargo from transportvehicles as illustrated in FIGS. 13 and 14. As illustrated in FIG. 13,the push-pull technique described above may be utilized to create avirtual conveyor

Ads the apparatus and method have now been described as deployed on asingle floor, deck or other surface, an alternate design is contemplatedfor use in multiple level applications. The current invention providesfor the means to transfer pallets and respective loads to between floorsby the use of a variety of elevator and/or lift mechanisms. FIGS. 15 and16 illustrate varying embodiments of lifting means for use in multiplelevel applications. One skilled in the art will recognize the a varietyof currently available industrial lift and hoist systems can be employedto affect movement of pallets 120 between floors or levels. One skilledin the art will also appreciate that the fundamental configuration onthe 2-dimensional plane can easily be repeated and applied to support acomplete system comprising multiple levels.

FIG. 15 illustrates an embodiment of the system that utilizes a centralelevator 550 to move pallets 120 between levels. In this embodiment,responsive to a request to move a pallet 120 from one level to another,the system positions the pallet onto the elevator 550. The elevator 550would then travel either up or down in accordance with the targetlocation, and upon arrival at the appropriate level, the pallet 120 maypull itself or be pulled by another pallet 120 in the same fashion aspreviously discussed.

Alternatively, FIG. 16 illustrates an embodiment that utilizes a lifterassembly 650 that can move a single pallet 120 up or down one level. Asshown in FIG. 16, multiple lifter assemblies 650 may be positioned atmany locations throughout the configuration allowing pallets 120 to movefreely between levels by positioning the pallet 120 over the lifterassembly 650 location and moving up or down one level.

There have been described and illustrated herein embodiments of theapparatus and methods of using the same to automate storage, retrievaland transportation of goods while maximizing efficiencies and likewiseoptimizing physical space. While particular embodiments of the inventionhave been described, it is not intended that the invention be limitedthereto. It is intended that the invention be as broad in scope as theart will allow and that the specification be read likewise. For example,those skilled in the art will appreciate that certain features of oneembodiment may be combined with features of another embodiment toprovide yet additional embodiments. It will therefore be appreciated bythose skilled in the art that other modifications could be made to theprovided invention without deviating from its spirit and scope as soclaimed and described.

1. A system for moving a pallet, the system comprising: a pair of pallets each having means for inducing movement in relation to an another pallet; a control engine having logic for calculating a movement instruction to move one of said pair of pallets; and means for communicating said instruction to said movement means on one of said pair of pallets to prompt movement of one of said pair of pallets.
 2. The system as set forth in claim 1, wherein said logic is responsive to an electronic request.
 3. The system as set forth in claim 1, further comprising a database for storing coordinate locational data relative to said pair of pallets.
 4. The system as set forth in claim 3, wherein said control engine is capable of communicating with said database to retrieve said data.
 5. The system as set forth in claim 1 further comprising low friction movement means to reduce energy required to move said pair of pallets.
 6. The system as set forth in claim 5 wherein said low friction movement means is an air cushion. 